/*
    1.首先判断起始位置的值是否等于newColor， 相同直接返回image结束
    2.将起始位置的值赋值给一个新变量 oldColor 保存。
    3.写一个深搜函数，进行上下左右四个位置深搜，
      判断遍历到的位置是否越界以及值是否已不再是 oldColor，结束。
      如果值等于 oldColor ，将该位置值更新为 newColor
    4.最后调用深搜，返回更新后的 image
 */
var floodFill = function(image, sr, sc, newColor) {
    if (image[sr][sc] === newColor){
        return image;
    }
    const oldColor = image[sr][sc];
    function dfs(sr, sc) {
        if (sr < 0 || sr >= image.length || sc < 0 || sc >= image[0].length || image[sr][sc] !== oldColor){
            return;
        }
        // console.log('遍历的坐标为: ' + sr + ' ' + sc);
        image[sr][sc] = newColor;
        dfs(sr + 1, sc);
        dfs(sr - 1, sc);
        dfs(sr, sc + 1);
        dfs(sr, sc - 1);
    }

    dfs(sr, sc);
    return image;
};

console.log(floodFill([[1, 1, 1], [1, 1, 0], [1, 0, 1]], 1, 1, 2));